//
//  EmoticonManager.swift
//  baiqingjianpan
//
//  Created by mac on 15/11/15.
//  Copyright © 2015年 mac. All rights reserved.
//

import Foundation

// MARK: - 表情包管理器 - emoticon.plist
/**
1. emoticons.plist 定义表情包数组
packages 字典数组中，每一个 id 对应不同表情包的目录
2. 从 每一个表情包目录中，加载 info.plist 可以获得不同的表情内容
id	目录名
group_name_cn	表情分组名称- 显示在 toolbar 上
emoticons	 数组
字典
chs		发送给服务器的字符串
png		在本地显示的图片名称
code	emoji 的字符串编码

*/

class  EmoticonManager{
    //单列
    static let sharedManager = EmoticonManager()
    
    lazy var packages = [EmoticonPackage]()
    
   private init() {

    loadPlist()
    }
    
    /// 从 emoticons.plist 加载表情包数据
    private func loadPlist() {
        
        // 0. 添加最近的分组
        packages.append(EmoticonPackage(dict: ["group_name_cn": "最近A"]))
        // 1. 加载 emoticon.plist － 如果文件不存在，path == nil
        let path = NSBundle.mainBundle().pathForResource("emoticons.plist", ofType: nil, inDirectory: "Emoticons.bundle")!
        
        //加载"字典"
        let dict = NSDictionary(contentsOfFile: path) as! [String: AnyObject]
        
        //3 从字典中获得 id 的数组
        
        let array = (dict["packages"] as! NSArray).valueForKey("id")
        
        //4 遍历 id 数组
        for id in array as! [String]{
            
            loadInfoPlist(id)
        }
        //print(packages)
    }
    
    // 加载每一个 id 目录下的 info.plist
    private func loadInfoPlist(id: String) {
        
        //1 建立路径
        let path = NSBundle.mainBundle().pathForResource("info.plist", ofType: nil, inDirectory: "Emoticons.bundle/\(id)")!
        
        // 加载字典 - 一个独立的表情包
        
        let dict = NSDictionary(contentsOfFile: path) as! [String: AnyObject]
        
        packages.append(EmoticonPackage(dict: dict))
        
        
        
    }
    
    
}


